//
//  PLHttpTools.h
//  PointLegend
//
//  Created by 黄卫 on 17/3/1.
//  Copyright © 2017年 huangwei. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "TYHttpError.h"


@interface TYHttpTools : NSObject

typedef void (^ReturnValueBlock) (id returnValue);
typedef void (^ErrorCodeBlock) (TYHttpError * error);


/**
 *  http get方法封装
 *
 *  @param url     要请求的url
 *  @param params  参数
 *  @param success 请求成功执行的block
 *  @param failure 请求失败执行的block
 */
+ (NSURLSessionDataTask *)getRequestNotNeedCache:(NSString *)url
                                          params:(NSDictionary *)params
                            success:(ReturnValueBlock) block
                                failure:(ErrorCodeBlock) failure;


/**
 *  http get方法封装
 *
 *  @param url     要请求的url
 *  @param params  参数
 *  @param success 请求成功执行的block
 *  @param failure 请求失败执行的block
 */
+ (NSURLSessionDataTask *)getRequestNeedCache:(NSString *)url
                                       params:(NSDictionary *)params
                         success:(ReturnValueBlock) block
                             failure:(ErrorCodeBlock) failure;

/**
 *  http post方法封装
 *
 *  @param url     要请求的url
 *  @param params  参数
 *  @param success 请求成功执行的block
 *  @param failure 请求失败执行的block
 */
+ (NSURLSessionDataTask *)post:(NSString *)url
                        params:(NSDictionary *)params
          success: (ReturnValueBlock) block
              failure: (ErrorCodeBlock) failure;

/*
 * 上传文件
 */
+ (NSURLSessionDataTask *)post:(NSString *)url
                        params:(NSDictionary *)params
                     imageData:(NSData *)data
         success: (ReturnValueBlock) block
              failure: (ErrorCodeBlock) failure;

@end
